/**
 * @author Pawel Gadecki <pidzama@gmail.com>
 * 
 */
package spwodne;

import java.io.Serializable;
import java.util.*;
import tools.MathTools;

public class Wies
        implements Serializable {

    public Wies(Integer id, Integer idSp, String nazwa, Float stawka) {
        this.id = id;
        this.stawka = stawka;
        this.nazwa = nazwa;
        lk = new ArrayList();
        this.idSp = idSp;
        ile_ha = Float.valueOf(0.0F);
        ile_naleznosci = Float.valueOf(0.0F);
        ile_zalega = Float.valueOf(0.0F);
    }

    public void addKlient(String im, String naz, String ad, String pes, Float p) {
        lk.add(new Klient(idSp, id, Integer.valueOf(lk.size() + 1), im, naz, ad, "", "", pes, p));
        podliczHa();
        podliczNal();
        podliczZal();
    }

    public void remKlient(int ind) {
        lk.remove(ind);
        podliczHa();
        podliczNal();
        podliczZal();
    }

    public void setNaz(String newnaz) {
        nazwa = newnaz;
    }

    private void podliczHa() {
        float tmp = 0.0F;
        for (Iterator i$ = lk.iterator(); i$.hasNext();) {
            Klient k = (Klient) i$.next();
            tmp += k.getPow().floatValue();
        }

        ile_ha = MathTools.round(tmp);
    }

    private void podliczNal() {
        ile_naleznosci = MathTools.round(ile_ha.floatValue() * stawka.floatValue());
    }

    private void podliczZal() {
        float tmp = 0.0F;
        for (Iterator i$ = lk.iterator(); i$.hasNext();) {
            Klient k = (Klient) i$.next();
            tmp += k.getSumaZostalo().floatValue();
        }

        ile_zalega = MathTools.round(tmp);
    }

    public int getNKli() {
        return lk.size();
    }

    public String getID() {
        return (new StringBuilder()).append("").append(idSp).append(".").append(id).toString();
    }

    public String getNaz() {
        return nazwa;
    }

    public List getLKli() {
        return lk;
    }
    @Override
    public String toString() {
        return (new StringBuilder()).append(nazwa).append(stawka).append(lk).toString();
    }

    public void refresh() {
        podliczHa();
        podliczNal();
        podliczZal();
    }
    public Integer id;
    public Integer idSp;
    private String nazwa;
    private Float stawka;
    public Float ile_ha;
    public Float ile_naleznosci;
    public Float ile_zalega;
    private List lk;
}
